<?php

/*
    realizzazione del customtype attivita

    questo va incluso nel file plugin che utilizza il post type
 */

// fissa gli hook
function wpf_attivita_hooks()
{
	// creo il plugin ed i relativi menu
	register_activation_hook(__FILE__, 'wpf_attivita_rewrite_flush'); // serve per i permalink
	add_action('init', 'wpf_attivita_init',20); // quando inizializzo la pagina
	add_action('admin_init', 'wpf_attivita_add_boxes', 1);
        
// 	add_action('contextual_help', 'wpf_attivita_help_text', 10, 3); // genero l'help contestuale ai post, in amministrazione

	// modifico la visualizzazione dei custom-post
// 	add_filter('the_content', 'wpf_attivita_view'); // quando visualizzo il testo
// 	add_filter('the_title','wpf_progetto_title'); // quando visualizzo il titolo

	// genero la tabella per la visualizzazione dei fascicoli :
// 	add_filter('manage_wpf_progetto_posts_columns', 'wpf_progetto_list_column_header'); // aggiunge la colonna "azienda" alla lista dei fascicoli
// 	add_filter('manage_edit-wpf_progetto_sortable_columns', 'wpf_progetto_list_sort_columns'); // rende ordinabile per una colonna
// 	add_action('manage_wpf_progetto_posts_custom_column', 'wpf_progetto_list_column_row', 10, 2); // riempie la colonna azienda alla lista dei fascicoli
// 	add_filter('views_edit-wpf_progetto', 'wpf_progetto_link_list'); // per aggiungere link nella lista dei progetti

	// salvo i dati dei vari box creati
	add_action('save_post', 'wpf_attivita_generale_save', 10, 2);

 	add_action('the_post', 'wpf_attivita_extends'); // aggiunge al progetto i suoi customfields

// 	add_filter('wpf_progetto_available_statuses', 'wpf_filter_status');
}

// inizializza quello che serve
function wpf_attivita_init()
{
	// creazione del posttype
	$labels = array(
		'name' => _x('Attivita', 'Attivita'),
		'singular_name' => _x('Attivita', 'Nome singolare delle attivita'),
		'add_new' => _x('Aggiungi nuova', 'wpf_attivita'),
		'add_new_item' => __('Nuova attivita'),
		'edit_item' => __('Modifica attivita'),
		'new_item' => __('Nuova attivita'),
		'all_items' => __('Tutte le attivita'),
		'view_item' => __('Visualizza questa attivita'),
		'search_items' => __('Cerca una attivita'),
		'not_found' => __('Nessuna attivita trovata'),
		'not_found_in_trash' => __('Non ci sono attivita nel cestino'),
		'parent_item_colon' => '',
		'menu_name' => 'Attivita'
	);

	$args = array(
			'labels' => $labels,
			'public' => true,
			'publicly_queryable' => true,
			'show_ui' => true,
			'show_in_menu' => 'edit.php?post_type=wpf_corso',
			'query_var' => true,
			'rewrite' => array(
					'slug' => 'attivita'
			),
			'capability_type' => array(
					'attivita1', 'attivita'
			),
			'map_meta_cap' => true,
			'has_archive' => true,
			'hierarchical' => true,
			'menu_position' => null,
			'supports' => array(
					'title'
			)
	);

	register_post_type('wpf_attivita', $args);
        
        }

 
// aggiunge alla attivita i suoi customtype
function wpf_attivita_extends($post)
{
	// solo in caso di attivita
	if ($post->post_type != 'wpf_attivita')
	{
		return;
	}

	$post->utente = get_post_meta($post->ID, 'utente',true);
	$post->data_attivita = get_post_meta($post->ID, 'data_attivita', true);
	$post->modalita = get_post_meta($post->ID, 'modalita', true);
	$post->key = get_post_meta($post->ID, 'key', true);
	$post->invito = get_post_meta($post->ID, 'invito', true);
}

// serve per gestire i permalink
function wpf_attivita_rewrite_flush()
{
	wpf_attivita_init();
	flush_rewrite_rules();
}

// aggiunge i boxes necessari a
function wpf_attivita_add_boxes()
{
	add_meta_box(
			'Generale',
			'Generale',
			'wpf_attivita_generale_box',
			'wpf_attivita',
			'advanced',
			'core',
			''
	);
}

function wpf_attivita_generale_box()
{
	global $post;
	global $wpf_domain;

	// Use nonce for verification
	wp_nonce_field(plugin_basename(__FILE__), 'wpf_attivita_noncename');

	$users_list = get_users('blog_id=1&orderby=nicename&role=manager');
	$users = '';

	foreach ($users_list as $user)
	{
		$users .= $user->user_login.',';
	}
	$readonly = (!current_user_can('approve_attivita')) && ($post->post_status != 'published');

// 	$readonly = false; // DEBUG

	// The actual fields for data entry
	admin_field(
			'titolo',
			($readonly ? 'readonly' : 'smalltext'),
			'Titolo',
			get_post_meta($post->ID, 'titolo', true),
			$wpf_domain,
			'Inserisci qui il titolo dell\'attività.'
	);

	admin_field(
			'scheda_attivita',
			($readonly ? 'readonly' : 'smalltext'),
			'Scheda attività',
			get_post_meta($post->ID, 'scheda_attivita', true),
			$wpf_domain,
			'Inserisci qui la scheda di attività.'
	);

	admin_field(
			'dati',
			($readonly ? 'readonly' : 'longtext'),
			'Dati',
			get_post_meta($post->ID, 'dati', true),
			$wpf_domain,
			'Inserisci qui i dati di attivita.'
	);

	admin_field(
			'note',
			($readonly ? 'readonly' : 'smalltext'),
			'Note',
			get_post_meta($post->ID, 'note', true),
			$wpf_domain,
			'Inserisci qui le note.'
	);
}

// cattura e salva i dati del box generale
function wpf_attivita_generale_save($post_id, $post)
{

	// If it is our form has not been submitted, so we dont want to do anything
	if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
	{
		return;
	}

	// verify this came from the our screen and with proper authorization,
	// because save_post can be triggered at other times
	/*if (!wp_verify_nonce(@$_POST['wpf_attivita_noncename'], plugin_basename(__FILE__)))
	{
		return;
	}*/

	if (!current_user_can('edit_attivita'))
	{
		return;
	}

    if ($post->post_type != 'wpf_attivita')
	{
		return;
	}

        
	if ($post->post_status == 'publish')
	{
		return;
	}

	if ($post->post_status == 'closed')
	{
		return;
	}

	// OK, you can save the data
	$my_post = array();
	$my_post['ID'] = $post_id;
	$my_post['post_title'] = $post->titolo;
	$my_post['post_content'] = $post->dati;
	$my_post['post_excerpt'] = $post->note;

	remove_action('save_post', 'wpf_attivita_generale_save');
	wp_update_post($my_post);
	add_action('save_post', 'wpf_attivita_generale_save');

	admin_field_save_post_meta($post_id, 'scheda_attivita', $post->scheda_attivita);
}

wpf_attivita_hooks();

?>
